package main

import (
	"golang.org/x/sync/errgroup"
	"jwgin/middleware"
	"jwgin/model/mysql"
	"jwgin/routes"
	"jwgin/service"
)

//go:generate go env -w GO111MODULE=on
//go:generate go env -w GOPROXY=https://goproxy.cn,direct
//go:generate go mod tidy
//go:generate go mod download

var (
	g errgroup.Group
)

func main() {
	//初始化配置文件
	service.InitViper()
	//初始化日志
	service.InitLogger()
	//初始化数据库
	service.InitMysql()
	add()
	//初始化redis
	service.InitRedis()
	//初始化权限控制器
	service.InitCasbin()
	//启动web
	g.Go(func() error {
		return routes.InitWebRoute()
	})

	if err := g.Wait(); err != nil {
		panic("路由监听出错：" + err.Error())
	}
}

func add() {
	list := []mysql.Whois{}
	service.G.Table("whois").Where(" `web_domain` IS NOT NULL ").Find(&list)
	for _, y := range list {
		middleware.DomainLists[y.Comid] = y.WebDomain
	}
}
